IWDFIoRequest2::GetQueryInformationParameters 메서드(wudfddi.h)
[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF를 사용하여 시작 참조하세요.]
GetQueryInformationParameters 메서드는 WdfRequestQueryInformation 형식 I/O 요청과 연결된 매개 변수를 검색합니다.
구문
void GetQueryInformationParameters(
[out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
[out, optional] SIZE_T *pSizeInBytes
);
매개 변수
[out, optional] pInformationClass
WDF_FILE_INFORMATION_CLASS 형식의 값을 수신하는 드라이버 할당 변수에 대한 포인터입니다. 이 포인터는 선택 사항이며 NULL일 수 있습니다.
[out, optional] pSizeInBytes
파일 정보의 크기(바이트)를 수신하는 드라이버 할당 변수에 대한 포인터입니다. 이 포인터는 선택 사항이며 NULL일 수 있습니다.
반환 값
없음
설명
요청 유형이 WdfRequestQueryInformation인 경우 드라이버는 GetQueryInformationParameters를 호출하여 I/O 요청과 연결된 매개 변수를 가져올 수 있습니다. pInformationClass 매개 변수는 드라이버가 제공해야 하는 파일 정보의 형식을 식별하고 pSizeInBytes 매개 변수는 정보를 받을 버퍼의 크기를 지정합니다. 드라이버는 IWDFIoRequest2::RetrieveOutputBuffer 를 호출하여 버퍼 주소를 가져올 수 있습니다.
드라이버는 요청된 파일 정보를 받을 수 있을 만큼 지정된 버퍼 크기가 큰지 확인해야 합니다.
예제
다음 코드 예제는 IQueueCallbackDefaultIoHandler::OnDefaultIoHandler 콜백 함수의 일부입니다. 콜백 함수가 쿼리 정보 요청을 받으면 요청의 매개 변수를 검색합니다. 드라이버가 지정된 유형의 정보를 지원하는 경우 요청의 출력 버퍼에 정보를 복사합니다.
void
CMyQueue::OnDefaultIoHandler(
IWDFIoQueue* pQueue,
IWDFIoRequest* pRequest
)
{
HRESULT hr;
WDF_FILE_INFORMATION_CLASS infoClass;
SIZE_T bufSize;
PFILE_BASIC_INFORMATION buffer;
if (WdfRequestQueryInformation==pRequest->GetType())
{
//
// Declare an IWDFIoRequest2 interface pointer and obtain the
// IWDFIoRequest2 interface from the IWDFIoRequest interface.
//
CComQIPtr<IWDFIoRequest2> r2 = pRequest;
//
// Get the I/O request's parameters.
//
r2->GetQueryInformationParameters(&infoClass,
&bufSize);
//
// This driver supports only FileBasicInformation.
//
if (infoClass != FileBasicInformation)
{
hr = HRESULT_FROM_NT(STATUS_NOT_SUPPORTED);
goto exit;
}
//
// Validate buffer size.
//
if (bufferCb != sizeof(FILE_BASIC_INFORMATION))
{
hr = HRESULT_FROM_NT(STATUS_BUFFER_TOO_SMALL);
goto exit;
}
//
// Get output buffer.
//
hr = r2->RetrieveOutputBuffer(sizeof(FILE_BASIC_INFORMATION),
(PVOID*) &buffer,
&bufferCb);
if (SUCCEEDED(hr))
{
//
// Copy file information to output buffer.
//
CopyMemory(buffer,
&g_FileInfo,
sizeof(FILE_BASIC_INFORMATION));
r2->SetInformation(sizeof(FILE_BASIC_INFORMATION));
}
...
}
...
exit:
...
}
요구 사항
요구 사항 | 값 |
---|---|
지원 종료 | UMDF 2.0 이상에서는 사용할 수 없습니다. |
대상 플랫폼 | 데스크톱 |
최소 UMDF 버전 | 1.9 |
머리글 | wudfddi.h(Wudfddi.h 포함) |
DLL | WUDFx.dll |