IWDFDevice::CreateRequest-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 CreateRequest-Methode erstellt ein unformatiertes Anforderungsobjekt.
Syntax
HRESULT CreateRequest(
[in, optional] IUnknown *pCallbackInterface,
[in, optional] IWDFObject *pParentObject,
[out] IWDFIoRequest **ppRequest
);
Parameter
[in, optional] pCallbackInterface
Ein Zeiger auf die IUnknown-Schnittstelle , die das Framework verwendet, um die objektbezogenen Ereignisrückruffunktionen zu bestimmen, die der Treiber für das neu erstellte Anforderungsobjekt abonniert. Dieser Parameter ist optional. Der Treiber kann NULL übergeben, wenn der Treiber keine Benachrichtigung erfordert. Wenn der Treiber einen gültigen Zeiger übergibt, ruft das Framework QueryInterface auf der IUnknown-Schnittstelle für die IObjectCleanup-Schnittstelle auf. Wenn das Framework die IObjectCleanup-Schnittstelle des Treibers abruft, kann das Framework anschließend die IObjectCleanup::OnCleanup-Methode des Treibers aufrufen, um den Treiber darüber zu informieren, dass das Anforderungsobjekt bereinigt wird.
[in, optional] pParentObject
Ein Zeiger auf die IWDFObject-Schnittstelle für das übergeordnete Objekt des erstellten E/A-Anforderungsobjekts. Bei NULL wird das Geräteobjekt zum übergeordneten Standardobjekt.
[out] ppRequest
Ein Zeiger auf eine Variable, die einen Zeiger auf die IWDFIoRequest-Schnittstelle für das neue Anforderungsobjekt empfängt.
Rückgabewert
CreateRequest gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode einen der Fehlercodes zurück, die in Winerror.h definiert sind.
Hinweise
Bevor ein UMDF-Treiber das Von CreateRequest erstellte Anforderungsobjekt verwendet, muss der Treiber das Anforderungsobjekt formatieren. Um ein E/A-Anforderungsobjekt zu formatieren, ruft der Treiber eine der folgenden Methoden auf:
Wenn NULL im pParentObject-Parameter angegeben ist, wird das Geräteobjekt zum übergeordneten Standardobjekt für das neu erstellte E/A-Anforderungsobjekt. Wenn ein UMDF-Treiber ein E/A-Anforderungsobjekt erstellt, das der Treiber mit einem bestimmten E/A-Warteschlangenobjekt oder einem anderen E/A-Anforderungsobjekt verwendet, sollte der Treiber dieses Warteschlangen- oder Anforderungsobjekt als übergeordnetes Objekt des erstellten Anforderungsobjekts festlegen. Wenn das übergeordnete Objekt gelöscht wird, wird das erstellte Anforderungsobjekt gelöscht.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie eine Anforderung erstellen, die Anforderung zum Lesen formatieren und die Anforderung senden.
HRESULT
CUmdfHidDevice::SendInterruptPipeRead(
VOID
)
{
CComPtr<IWDFDevice> wdfDevice;
HRESULT hr;
IWDFFile *pTargetFile = NULL;
// Allocate a new WDF request to send on the interrupt pipe.
GetWdfDevice(&wdfDevice);
hr = wdfDevice->CreateRequest(
static_cast<IObjectCleanup*>(this),
wdfDevice,
&m_InterruptReadRequest
);
if (SUCCEEDED(hr))
{
m_InterruptPipe->GetTargetFile(&pTargetFile);
hr = m_InterruptPipe->FormatRequestForRead(
m_InterruptReadRequest,
pTargetFile,
m_ReadMemory,
NULL,
NULL
);
}
// Issue the read to the pipe.
if (SUCCEEDED(hr))
{
hr = m_InterruptReadRequest->Send(m_InterruptPipe, 0, 0);
}
return hr;
}
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform | Desktop |
UMDF-Mindestversion | 1.5 |
Kopfzeile | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |
Weitere Informationen
IWDFIoTarget::FormatRequestForIoctl
IWDFIoTarget::FormatRequestForRead