Skip to content

Failed to invoking ReadPciConfigDword() #16

@AnswerKill

Description

@AnswerKill

invoking ReadPciConfigDword(), can't get value.

After debug, issue cause by

inline NTSTATUS BufferSizeCheck(ULONG nInBufferSize, ULONG nOutBufferSize, ULONG* lpBytesReturned, ULONG size)
{
if (nInBufferSize == 0)
{
*lpBytesReturned = 0;
return STATUS_INVALID_PARAMETER;
}
if (nOutBufferSize < size)
{
*lpBytesReturned = 0;
return STATUS_BUFFER_TOO_SMALL;
}
return STATUS_SUCCESS;
}

when driver invoking

NTSTATUS
ReadPciConfig(void* lpInBuffer,
ULONG nInBufferSize,
void* lpOutBuffer,
ULONG nOutBufferSize,
ULONG* lpBytesReturned)
{
OLS_READ_PCI_CONFIG_INPUT* param;
NTSTATUS status;

status = BufferSizeCheck(nInBufferSize, nOutBufferSize, lpBytesReturned, sizeof(OLS_READ_PCI_CONFIG_INPUT));

   if (status < 0) return STATUS_INVALID_PARAMETER;

....
}

nOutBufferSize(4) less sizeof(OLS_READ_PCI_CONFIG_INPUT).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions