Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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 FormatRequestForSetInformation- Methode formatiert eine E/A-Anforderung zum Festlegen von Informationen zu einer Datei, sendet die Anforderung jedoch nicht an ein E/A-Ziel.
Syntax
HRESULT FormatRequestForSetInformation(
[in] IWDFIoRequest *pRequest,
[in] WDF_FILE_INFORMATION_CLASS InformationClass,
[in, optional] IWDFFile *pFile,
[in, optional] IWDFMemory *pInformationMemory,
[in, optional] PWDFMEMORY_OFFSET pInformationMemoryOffset
);
Parameter
[in] pRequest
Ein Zeiger auf die IWDFIoRequest Schnittstelle des Anforderungsobjekts, das die E/A-Anforderung darstellt.
[in] InformationClass
Ein WDF_FILE_INFORMATION_CLASS-typed-Wert, der den festzulegenden Informationstyp angibt.
[in, optional] pFile
Ein Zeiger auf die IWDFFile Schnittstelle des Dateiobjekts, das der E/A-Anforderung zugeordnet ist. Dieser Parameter ist für lokale und Remote-E/A-Zieleerforderlich und ist optional (kann NULL-) für Dateihandle-E/A-Ziele sein.
[in, optional] pInformationMemory
Ein Zeiger auf die IWDFMemory Schnittstelle eines Speicherobjekts. Dieses Objekt stellt den Eingabepuffer dar, der vom Treiber bereitgestellte Dateiinformationen enthält, die vom InformationClass Parameter angegeben werden. Dieser Parameter ist optional und kann NULL-werden.
[in, optional] pInformationMemoryOffset
Ein Zeiger auf eine WDFMEMORY_OFFSET Struktur, die optionale Byteoffset- und Längenwerte bereitstellt. Das Framework verwendet diese Werte, um die Anfangsadresse und -länge innerhalb des Eingabepuffers für die Datenübertragung zu bestimmen. Wenn dieser Zeiger NULL-ist, beginnt die Datenübertragung am Anfang des Eingabepuffers, und die Übertragungsgröße ist die Puffergröße.
Rückgabewert
FormatRequestForSetInformation gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise den folgenden Wert zurück:
Rückgabecode | Beschreibung |
---|---|
|
Das Framework konnte arbeitsspeicher nicht zuordnen. |
Diese Methode gibt möglicherweise einen der anderen Werte zurück, die Winerror.h enthält.
Bemerkungen
Verwenden Sie die FormatRequestForSetInformation-Methode, gefolgt von der IWDFIoRequest::Send-Methode, um Anforderungen entweder synchron oder asynchron an ein E/A-Zielzu senden.
Beispiele
Das folgende Codebeispiel ist Teil einer IQueueCallbackDefaultIoHandler::OnDefaultIoHandler Rückruffunktion. Wenn die Rückruffunktion eine festgelegte Informationsanforderung empfängt, sendet sie die Anforderung an das Standard-E/A-Ziel des Geräts.
void
CMyQueue::OnDefaultIoHandler(
IWDFIoQueue* pQueue,
IWDFIoRequest* pRequest
)
{
HRESULT hr;
IWDFDevice *pDevice;
IWDFIoTarget *pTarget;
IWDFFile *pFile;
IWDFMemory *pInMemory;
WDF_FILE_INFORMATION_CLASS infoClass;
//
// Obtain the device, default I/O target, and file object.
//
pQueue->GetDevice(&pDevice);
pDevice->GetDefaultIoTarget(&pTarget);
pRequest->GetFileObject(&pFile);
if (WdfRequestQueryInformation==pRequest->GetType())
{
//
// Declare an IWDFIoRequest2 interface pointer and obtain the
// IWDFIoRequest2 interface from the IWDFIoRequest interface.
//
CComQIPtr<IWDFIoRequest2> r2 = pRequest;
//
// Declare an IWDFIoTarget2 interface pointer and obtain the
// IWDFIoTarget2 interface from the IWDFIoTarget interface.
//
CComQIPtr<IWDFIoTarget2> target2(pTarget);
//
// Get the I/O request's input buffer.
//
hr = pWdfRequest2->RetrieveInputMemory(&pInMemory);
if (!SUCCEEDED(hr)) goto Error;
//
// Get the I/O request's parameters.
//
hr = pWdfRequest2->GetSetInformationParameters(&infoClass,
NULL);
if (!SUCCEEDED(hr)) goto Error;
//
// Format a query information request and send it to the I/O target.
//
hr = target2->FormatRequestForSetInformation(pRequest,
infoClass,
pFile,
pInMemory,
NULL);
if (!SUCCEEDED(hr)) goto Error;
hr = pRequest->Send(pTarget,
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,
0);
}
...
Error;
//
// Release objects.
//
SAFE_RELEASE(pDevice);
SAFE_RELEASE(pTarget);
SAFE_RELEASE(pFile);
SAFE_RELEASE(pOutMemory);
}
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 |