Freigeben über


IWDFIoRequest2::GetSetInformationParameters-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. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF-.]

Die GetSetInformationParameters Methode ruft Parameter ab, die einer WdfRequestSetInformation-typed-E/A-Anforderung zugeordnet sind.

Syntax

void GetSetInformationParameters(
  [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-typed-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

Nichts

Bemerkungen

Ihr Treiber kann GetSetInformationParameters aufrufen, um die Parameter abzurufen, die einer E/A-Anforderung zugeordnet sind, wenn der Anforderungstyp WdfRequestSetInformationist. Der parameter pInformationClass identifiziert den Typ der Dateiinformationen, die der Treiber festlegen soll, und der pSizeInBytes Parameter gibt die Größe des Puffers an, der die Informationen enthält. Der Treiber kann IWDFIoRequest2::RetrieveInputBuffer- aufrufen, um die Pufferadresse abzurufen.

Der Treiber muss überprüfen, ob die angegebene Puffergröße groß genug ist, um die Dateiinformationen zu enthalten, die der Treiber festlegen muss.

Beispiele

Das folgende Codebeispiel ist Teil einer IQueueCallbackDefaultIoHandler::OnDefaultIoHandler Rückruffunktion. Wenn die Rückruffunktion eine festgelegte Informationsanforderung empfängt, ruft sie die Parameter der Anforderung ab. Wenn der Treiber den angegebenen Informationstyp unterstützt, kopiert er die Informationen aus dem Eingabepuffer 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->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:
...
}

Anforderungen

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

Siehe auch

IWDFIoRequest2-

IWDFIoRequest2::GetQueryInformationParameters