IWDFDevice::RetrieveDeviceName-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 RetrieveDeviceName Methode ruft den Namen eines zugrunde liegenden Kernelmodusgeräts ab.
Syntax
HRESULT RetrieveDeviceName(
[out] PWSTR pDeviceName,
[in, out] DWORD *pdwDeviceNameLength
);
Parameter
[out] pDeviceName
Ein Zeiger auf einen Puffer, der eine NULL--terminated-Zeichenfolge empfängt, die den Namen des zugrunde liegenden Kernelmodusgeräts darstellt, wenn der Puffer nichtNULL- und RetrieveDeviceName- erfolgreich ist.
[in, out] pdwDeviceNameLength
Ein Zeiger auf eine Variable, die die Anzahl von Zeichen erhält, einschließlich des NULL- Zeichens, im Gerätenamen.
Wenn der Puffer bei pDeviceNameNULL-ist, ist der Vom Treiber bereitgestellte Wert Null. Das Framework gibt dann die Größe in Zeichen zurück, die für die Gerätenamenzeichenfolge erforderlich ist.
Wenn der Puffer bei pDeviceName nichtNULL-ist, gibt das Framework die Größe der Gerätenamenzeichenfolge in Zeichen zurück.
Rückgabewert
RetrieveDeviceName- gibt S_OK für die folgenden Szenarien zurück:
- Der Puffer, auf den der pDeviceName-Parameter verweist, war nichtNULL- und groß genug, um die Namenszeichenfolge aufzunehmen, einschließlich des NULL- Zeichens, und das Framework hat die Zeichenfolge erfolgreich in den angegebenen Puffer kopiert und die Variable festgelegt, auf die von pdwDeviceNameLength auf die Anzahl der Zeichen in der Zeichenfolge verwiesen wird.
- Der Puffer bei pDeviceName war NULL-, der Treiber hat die Variable bei pdwDeviceNameLength auf 0 festgelegt, und das Framework legt die Variable auf pdwDeviceNameLength auf die Anzahl der Zeichen fest, die für die Zeichenfolge erforderlich waren.
RetrieveDeviceName gibt HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) zurück, um anzugeben, dass der angegebene Puffer nichtNULL- war und nicht genügend Speicherplatz zum Speichern des Gerätenamens enthält. Das Framework legt die Variable bei pdwDeviceNameLength auf die Anzahl der Zeichen fest, die für die Zeichenfolge erforderlich sind.
RetrieveDeviceName- können auch andere HRESULT-Werte zurückgeben.
Bemerkungen
Der Gerätename ist nicht der Name des physischen Geräteobjekts (PDO). Stattdessen ist der Gerätename der Name des Reflektors. Der Treiber muss alle E/A-Objekte auf dieses Geräteobjekt ausrichten.
Beispiele
Das folgende Codebeispiel zeigt, wie der Name eines zugrunde liegenden Kernelmodusgeräts abgerufen wird.
PWSTR deviceName = NULL;
DWORD deviceNameCch = 0;
HRESULT hr;
//
// Get the length of the device name to allocate a buffer
//
hr = m_FxDevice->RetrieveDeviceName(NULL, &deviceNameCch);
//
// Allocate the buffer
//
deviceName = new WCHAR[deviceNameCch];
if (deviceName == NULL) {
hr = E_OUTOFMEMORY;
goto Exit1;
}
//
// Get the device name
//
hr = m_FxDevice->RetrieveDeviceName(deviceName,
&deviceNameCch);
// Open the device and get the handle
m_Handle = CreateFile(deviceName,
(GENERIC_READ | GENERIC_WRITE),
0,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
Anforderungen
Anforderung | Wert |
---|---|
Ende des Supports | In UMDF 2.0 und höher nicht verfügbar. |
Zielplattform- | Desktop |
Mindest-UMDF-Version | 1.5 |
Header- | wudfddi.h (include Wudfddi.h) |
DLL- | WUDFx.dll |