다음을 통해 공유


IWDFIoRequest2::GetSetInformationParameters 메서드(wudfddi.h)

[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에는 새로운 기능이 추가되지 않으며 최신 버전의 Windows 10에서는 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF시작 .]을 참조하세요.

GetSetInformationParameters 메서드는 WdfRequestSetInformation형식의 I/O 요청과 연결된 매개 변수를 검색합니다.

통사론

void GetSetInformationParameters(
  [out, optional] WDF_FILE_INFORMATION_CLASS *pInformationClass,
  [out, optional] SIZE_T                     *pSizeInBytes
);

매개 변수

[out, optional] pInformationClass

WDF_FILE_INFORMATION_CLASS형식화된 값을 수신하는 드라이버 할당 변수에 대한 포인터입니다. 이 포인터는 선택 사항이며 NULL 수 있습니다.

[out, optional] pSizeInBytes

파일 정보의 크기(바이트)를 수신하는 드라이버 할당 변수에 대한 포인터입니다. 이 포인터는 선택 사항이며 NULL 수 있습니다.

반환 값

없음

발언

요청 유형이 WdfRequestSetInformation 경우 드라이버는 GetSetInformationParameters 호출하여 I/O 요청과 연결된 매개 변수를 가져올 수 있습니다. pInformationClass 매개 변수는 드라이버가 설정해야 하는 파일 정보의 형식을 식별하고, pSizeInBytes 매개 변수는 정보를 포함하는 버퍼의 크기를 지정합니다. 드라이버는 IWDFIoRequest2::RetrieveInputBuffer 호출하여 버퍼 주소를 가져올 수 있습니다.

드라이버는 지정된 버퍼 크기가 드라이버가 설정해야 하는 파일 정보를 포함할 만큼 충분히 큰지 확인해야 합니다.

예제

다음 코드 예제는 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->GetSetInformationParameters(&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 input buffer.
        // 
 hr = r2->RetrieveInputBuffer(sizeof(FILE_BASIC_INFORMATION), 
                              (PVOID*) &buffer,
                              &bufferCb);
 if (SUCCEEDED(hr))
        {
            // 
            // Copy file information from input buffer.
            // 
            CopyMemory(&g_FileInfo,
                       buffer,
                       sizeof(FILE_BASIC_INFORMATION));
        }
 ...
    }
...
exit:
...
}

요구 사항

요구
지원 종료 UMDF 2.0 이상에서는 사용할 수 없습니다.
대상 플랫폼 바탕 화면
최소 UMDF 버전 1.9
헤더 wudfddi.h(Wudfddi.h 포함)
DLL WUDFx.dll

참고 항목

IWDFIoRequest2

IWDFIoRequest2::GetQueryInformationParameters