FSCTL_DFS_GET_PKT_ENTRY_STATE Steuerungscode
Der FSCTL_DFS_GET_PKT_ENTRY_STATE-Steuerungscode kann dieselben Informationen wie die NetDfsGetClientInfo-Funktion erhalten, kann aber in einigen Konfigurationen mit hohen Latenzen für die DFS-Server eine bessere Leistung bieten. Es wird nicht empfohlen, den FSCTL_DFS_GET_PKT_ENTRY_STATE-Steuerelementcode zu verwenden, es sei denn, es liegen Leistungsprobleme vor.
Um diesen Vorgang auszuführen, rufen Sie die DeviceIoControl-Funktion mit den folgenden Parametern auf.
BOOL
WINAPI
DeviceIoControl( (HANDLE) hDevice, // handle to device
(DWORD) FSCTL_DFS_GET_PKT_ENTRY_STATE, // dwIoControlCode(LPDWORD) lpInBuffer, // input buffer
(DWORD) nInBufferSize, // size of input buffer
(LPDWORD) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure
Parameter
-
hDevice [in]
-
Ein Handle für das Gerät. Um ein Gerätehandle zu erhalten, rufen Sie die CreateFile-Funktion auf.
-
dwIoControlCode [in]
-
Der Steuerelementcode für den Vorgang. Verwenden Sie für diesen Vorgang FSCTL_DFS_GET_PKT_ENTRY_STATE .
-
lpInBuffer
-
Adresse einer DFS_GET_PKT_ENTRY_STATE_ARG Struktur und der folgenden 1-3 Unicode-Zeichenfolgen.
-
nInBufferSize [in]
-
Größe des Puffers in Bytes, auf den der lpInBuffer-Parameter verweist.
-
lpOutBuffer [out]
-
Adresse einer DFS_INFO_#- Struktur und aller Zeichenfolgen und Strukturen, auf die die DFS_INFO_#- Struktur verweist. Die zurückgegebene spezifische Struktur hängt vom Level-Member in der DFS_GET_PKT_ENTRY_STATE_ARG Struktur ab, die im Eingabepuffer übergeben wird.
-
nOutBufferSize [in]
-
Größe des Puffers in Bytes, auf den der lpOutBuffer-Parameter verweist. Aufgrund der Zeichenfolgen und Strukturen, auf die von der zurückgegebenen DFS_INFO_#- Struktur verwiesen wird, die sich ebenfalls im Ausgabepuffer befinden, sollte dieser Puffer größer als die angegebene DFS_INFO_#- Struktur sein.
-
lpBytesReturned [out]
-
Ein Zeiger auf eine Variable, die die Größe der im Ausgabepuffer gespeicherten Daten in Bytes empfängt.
Wenn der Ausgabepuffer zu klein, aber mindestens groß genug ist, um ein DWORD aufzunehmen, schlägt der Aufruf fehl, GetLastError gibt ERROR_MORE_DATA zurück, und das erste DWORD des Ausgabepuffers enthält die erforderliche Größe. Wenn der Ausgabepuffer kein DWORD enthalten kann, schlägt der Aufruf mit ERROR_INSUFFICIENT_BUFFER fehl, und lpBytesReturned ist 0.
Wenn lpOverlappedNULL ist, kann lpBytesReturned nicht NULL sein. Auch wenn ein Vorgang keine Ausgabedaten zurückgibt und lpOutBufferNULL ist, verwendet DeviceIoControllpBytesReturned. Nach einem solchen Vorgang ist der Wert von lpBytesReturned bedeutungslos .
Wenn lpOverlapped nicht NULL ist, kann lpBytesReturnedNULL sein. Wenn dieser Parameter nicht NULL ist und der Vorgang Daten zurückgibt, ist lpBytesReturned bedeutungslos , bis der überlappende Vorgang abgeschlossen ist. Rufen Sie GetOverlappedResult auf, um die Anzahl der zurückgegebenen Bytes abzurufen. Wenn der hDevice-Parameter einem E/A-Abschlussport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie GetQueuedCompletionStatus aufrufen.
-
lpOverlapped [in]
-
Ein Zeiger auf eine ÜBERLAPPENDE Struktur.
Wenn hDevice geöffnet wurde, ohne FILE_FLAG_OVERLAPPED anzugeben, wird lpOverlapped ignoriert.
Wenn hDevice mit dem flag FILE_FLAG_OVERLAPPED geöffnet wurde, wird der Vorgang als überlappender (asynchroner) Vorgang ausgeführt. In diesem Fall muss lpOverlapped auf eine gültige OVERLAPPED-Struktur verweisen, die ein Handle für ein Ereignisobjekt enthält. Andernfalls schlägt die Funktion auf unvorhersehbare Weise fehl.
Bei überlappenden Vorgängen wird DeviceIoControl sofort zurückgegeben, und das Ereignisobjekt wird nach Abschluss des Vorgangs signalisiert. Andernfalls wird die Funktion erst zurückgegeben, wenn der Vorgang abgeschlossen wurde oder ein Fehler auftritt.
Rückgabewert
Wenn der Vorgang erfolgreich abgeschlossen wurde, gibt DeviceIoControl einen wert ohne Zero zurück.
Wenn der Vorgang fehlschlägt oder aussteht, gibt DeviceIoControl null zurück. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista |
Unterstützte Mindestversion (Server) |
WindowsServer 2008 |
Header |
|