Freigeben über


IWDFIoRequest2::GetQueryInformationParameters-Methode (wudfddi.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. UMDF 1 werden keine neuen Features hinzugefügt, und die Unterstützung für UMDF 1 für neuere Versionen von Windows 10 ist eingeschränkt. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF.]

Die GetQueryInformationParameters-Methode ruft Parameter ab, die einer WdfRequestQueryInformation-typisierten E/A-Anforderung zugeordnet sind.

Syntax

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

Parameter

[out, optional] pInformationClass

Ein Zeiger auf eine vom Treiber zugewiesene Variable, die einen WDF_FILE_INFORMATION_CLASS typisierten Wert empfängt. Dieser Zeiger ist optional und kann NULL sein.

[out, optional] pSizeInBytes

Ein Zeiger auf eine vom Treiber zugewiesene Variable, die die Größe der Dateiinformationen in Bytes empfängt. Dieser Zeiger ist optional und kann NULL sein.

Rückgabewert

Keine

Bemerkungen

Ihr Treiber kann GetQueryInformationParameters aufrufen, um die Parameter abzurufen, die einer E/A-Anforderung zugeordnet sind, wenn der Anforderungstyp WdfRequestQueryInformation ist. Der pInformationClass-Parameter gibt den Typ der Dateiinformationen an, die der Treiber bereitstellen soll, und der Parameter pSizeInBytes gibt die Größe des Puffers an, der die Informationen empfängt. Der Treiber kann IWDFIoRequest2::RetrieveOutputBuffer aufrufen, um die Pufferadresse abzurufen.

Ihr Treiber muss überprüfen, ob die angegebene Puffergröße groß genug ist, um die angeforderten Dateiinformationen zu erhalten.

Beispiele

Das folgende Codebeispiel ist Teil einer IQueueCallbackDefaultIoHandler::OnDefaultIoHandler-Rückruffunktion . Wenn die Rückruffunktion eine Abfrageinformationsanforderung empfängt, ruft sie die Parameter der Anforderung ab. Wenn der Treiber den angegebenen Informationstyp unterstützt, kopiert er die Informationen in den Ausgabepuffer der Anforderung.

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:
...
}

Anforderungen

Anforderung Wert
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform Desktop
UMDF-Mindestversion 1.9
Kopfzeile wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Weitere Informationen

IWDFIoRequest2

IWDFIoRequest2::GetSetInformationParameters