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 SetPipePolicy--Methode legt die WinUsb-Piperichtlinie fest.
Syntax
HRESULT SetPipePolicy(
[in] ULONG PolicyType,
[in] ULONG ValueLength,
[in] PVOID Value
);
Parameter
[in] PolicyType
Der Typ der WinUsb-Piperichtlinie, die der UMDF-Treiber festlegt.
[in] ValueLength
Die Größe des Puffers, der SetPipePolicy für Valuein Byte bereitstellt.
[in] Value
Ein Zeiger auf den Puffer, der die WinUsb-Piperichtlinie enthält.
Rückgabewert
SetPipePolicy gibt einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
SetPipePolicy die WinUsb-Piperichtlinie erfolgreich festgelegt. |
|
SetPipePolicy ein Zuordnungsfehler aufgetreten. |
|
Dieser Wert entspricht dem Fehlercode, den die WinUsb-API zurückgegeben hat. |
Bemerkungen
Die Piperichtlinie steuert das Verhalten der USB-Pipe (z. B. Timeouts, Behandeln kurzer Pakete usw.).
Weitere Informationen zu gültigen Richtlinientypen und Werten, die ein UMDF-Treiber für die parameter PolicyType und Value übergeben kann, finden Sie in der WinUsb_SetPipePolicy-Funktion.
Informationen zum Verhalten der Piperichtlinien finden Sie unter WinUSB Functions for Pipe Policy Modification.
Die SetPipePolicy--Methode generiert eine UMDF-Anforderung und sendet die Anforderung synchron an das E/A-Ziel.
Beispiele
Im folgenden Codebeispiel wird die Richtlinie für Eingabe- und Ausgaberohre festgelegt.
HRESULT
CMyDevice::ConfigureUsbIoTargets(
)
{
HRESULT hr;
USB_INTERFACE_DESCRIPTOR pInterface;
WINUSB_PIPE_INFORMATION pipe;
BOOL policy;
DWORD err;
BOOL result;
LONG i;
LONG timeout;
ULONG length;
length = sizeof(UCHAR);
hr = m_pIUsbTargetDevice->RetrieveDeviceInformation(DEVICE_SPEED,
&length,
&m_Speed);
if (FAILED(hr)) {
// Print out error.
}
if (SUCCEEDED(hr)) {
// Print out device speed.
}
//
// Set timeout policies for input and output pipes.
//
if (SUCCEEDED(hr)) {
timeout = ENDPOINT_TIMEOUT;
hr = m_pIUsbInputPipe->SetPipePolicy(PIPE_TRANSFER_TIMEOUT,
sizeof(timeout),
&timeout);
if (FAILED(hr)) {
// Print out cannot set timeout policy for input pipe.
}
}
if (SUCCEEDED(hr)) {
timeout = ENDPOINT_TIMEOUT;
hr = m_pIUsbOutputPipe->SetPipePolicy(PIPE_TRANSFER_TIMEOUT,
sizeof(timeout),
&timeout);
if (FAILED(hr)) {
// Print out cannot set timeout policy for output pipe.
}
}
return hr;
}
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform- | Desktop |
Mindest-UMDF-Version | 1.5 |
Header- | wudfusb.h (include Wudfusb.h) |
DLL- | WUDFx.dll |