IOCTL_SFFDISK_QUERY_DEVICE_PROTOCOL IOCTL (sffdisk.h)
Benutzermodusanwendungen verwenden diese IOCTL, um einen Protokollwert abzurufen, der die Karte entweder als SD-Karte oder als MMC-Karte identifiziert. Eine Beschreibung dieses Befehls finden Sie in der spezifikation Secure Digital I/O (SDIO).
Rufen Sie zum Ausführen dieses Vorgangs die DeviceIoControl--Funktion auf (in der Microsoft Windows SDK-Dokumentation beschrieben), indem Sie die folgenden Parameter verwenden.
bRet = DeviceIoControl (
(HANDLE) hDevice,
(DWORD) dwIoControlCode,
(PUCHAR) lpInBuffer,
(DWORD) nInBufferSize,
(PUCHAR) lpOutBuffer,
(DWORD) nOutBufferSize,
(LPDWORD) lpBytesReturned,
(LPOVERLAPPED) lpOverlapped
);
Parameter
- hDevice-
- Der Handle zu einem Volume im SD-Stapel.
- dwIoControlCode-
- Enthält den Steuerelementcode für den Vorgang. Dieser Wert gibt den spezifischen Vorgang an, der ausgeführt werden soll, und den Typ des Geräts, auf dem sie ausgeführt werden soll. Verwenden Sie IOCTL_SFFDISK_QUERY_DEVICE_PROTOCOL für diesen Vorgang.
- lpInBuffer
- Wird nicht mit diesem IOCTL verwendet. Der Aufrufer sollte eine NULL-übergeben.
- nInBufferSize
- Wird nicht mit diesem IOCTL verwendet. Der Aufrufer sollte einen Wert von 0 übergeben.
- lpOutBuffer-
- Zeigen Sie auf eine SFFDISK_QUERY_DEVICE_PROTOCOL_DATA Struktur in einem vom Benutzer bereitgestellten Puffer, der die Ergebnisdaten enthält. Das ProtocolGUID- Mitglied der SFFDISK_QUERY_DEVICE_PROTOCOL_DATA-Struktur enthält eine GUID, die die Karte entweder als SD-Karte oder als MMC-Karte identifiziert. Wenn der Vorgang fehlschlägt und GetLastError den Fehlercode STATUS_BUFFER_TOO_SMALL zurückgibt, war der Ausgabepuffer nicht groß genug, um die Ergebnisdaten aufzunehmen.
- nOutBufferSize
- Enthält die Größe des Ausgabepuffers in Byte, auf den der lpOutBuffer Parameter verweist.
- lpBytesReturned
-
Zeiger auf eine Variable, die die Größe der im Puffer gespeicherten Ergebnisdaten in Bytes empfängt, auf die durch lpOutBufferverwiesen wird.
Wenn der Ausgabepuffer zu klein ist, um die Rückgabedaten aufzunehmen, enthält er einen Wert von Null für die Ausgabe, schlägt der Aufruf fehl, und GetLastError den Fehlercode ERROR_INSUFFICIENT_BUFFER zurückgibt. Falls.
Wenn lpOverlapped-NULL- (nicht überfällige E/A) ist, kann der Aufrufer keine NULL-lpBytesReturned Parameter für eingaben zuweisen. Wenn lpOverlapped- nicht NULL- (überlappende E/A) ist, kann der Aufrufer dem parameter lpBytesReturned eine NULL- zuweisen.
Wenn es sich um einen überlappenden Vorgang handelt, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetOverlappedResult--Funktion aufrufen. Wenn hDevice- einem E/A-Abschlussport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie die GetQueuedCompletionStatus--Funktion aufrufen. Eine Beschreibung der funktionen GetOverlappedResult und GetQueuedCompletionStatus finden Sie in der Windows SDK-Dokumentation.
- lpOverlapped-
-
Zeigen Sie auf eine ÜBERLAPPENDE Struktur, wie in der Windows SDK-Dokumentation beschrieben.
Wenn der Aufrufer das Gerät mit dem flag FILE_FLAG_OVERLAPPED geöffnet hat, muss lpOverlapped- auf eine gültige OVERLAPPED-Struktur verweisen. In diesem Fall führt das System DeviceIoControl als überlappenden, asynchronen Vorgang aus. Wenn der Aufrufer das Gerät mit der FILE_FLAG_OVERLAPPED-Kennzeichnung geöffnet hat und lpOverlapped-NULL-ist, schlägt die Funktion auf unvorhersehbare Weise fehl.
Wenn der Aufrufer das Gerät ohne Angabe des FILE_FLAG_OVERLAPPED Flags geöffnet hat, ignoriert das System den Wert in lpOverlapped, und die DeviceIoControl--Funktion wird erst zurückgegeben, wenn der Vorgang abgeschlossen wurde, oder bis ein Fehler auftritt.
Hauptcode
Eingabepuffer
TBD
Ausgabepuffer
TBD
Länge des Ausgabepuffers
TBD
Eingabe-/Ausgabepuffer
TBD
Länge des Eingabe-/Ausgabepuffers
TBD
Statusblock
Wenn der Vorgang erfolgreich ist, gibt DeviceIoControl einen Wert ungleich Null zurück.
Wenn der Vorgang fehlschlägt, gibt DeviceIoControl Null zurück. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Anforderungen
Anforderung | Wert |
---|---|
Header- | sffdisk.h (include Sffdisk.h) |