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. 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 GetSetInformationParameters-Methode ruft Parameter ab, die einer WdfRequestSetInformation-typisierten 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 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 GetSetInformationParameters aufrufen, um die Parameter abzurufen, die einer E/A-Anforderung zugeordnet sind, wenn der Anforderungstyp WdfRequestSetInformation lautet. Der pInformationClass-Parameter identifiziert den Typ der Dateiinformationen, die der Treiber festlegen soll, und der Parameter pSizeInBytes gibt die Größe des Puffers an, der die Informationen enthält. Der Treiber kann IWDFIoRequest2::RetrieveInputBuffer aufrufen, um die Pufferadresse abzurufen.
Ihr 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 |
UMDF-Mindestversion | 1.9 |
Kopfzeile | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |