FSCTL_DFS_GET_PKT_ENTRY_STATE Steuerungs Codes

Der FSCTL_DFS_GET_PKT_ENTRY_STATE Steuerungs Code kann die gleichen Informationen wie die netdfsgetclientinfo -Funktion erhalten, kann jedoch bei manchen Konfigurationen mit hohen Wartezeiten für die DFS-Server eine bessere Leistung erzielen. Es wird nicht empfohlen, den FSCTL_DFS_GET_PKT_ENTRY_STATE Control-Code zu verwenden, es sei denn, es treten Leistungsprobleme auf.

Um diesen Vorgang auszuführen, müssen Sie die Funktion DeviceIoControl mit den folgenden Parametern abrufen.

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. Rufen Sie zum Abrufen eines Geräte Handles die Funktion "-Funktion" auf.

dwIoControlCode [in]

Der Steuerelement Code für den Vorgang. Verwenden Sie FSCTL_DFS_GET_PKT_ENTRY_STATE für diesen Vorgang.

lpinbuffer

Adresse einer DFS_GET_PKT_ENTRY_STATE_ARG Struktur und der folgenden 1-3-Unicode-Zeichen folgen.

nInBufferSize [in]

Größe (in Bytes) des Puffers, auf den der lpinbuffer -Parameter zeigt.

lpoutbuffer [out]

Die Adresse einer DFS_INFO_ # Struktur und alle Zeichen folgen und Strukturen, auf die von der DFS_INFO_ # Struktur verwiesen wird. Die angegebene Struktur ist abhängig vom ebenenmember in der DFS_GET_PKT_ENTRY_STATE_ARG Struktur, die im Eingabepuffer weitergegeben wurde.

nOutBufferSize [in]

Größe (in Bytes) des Puffers, auf den der lpoutbuffer -Parameter verweist. Aufgrund der Zeichen folgen und Strukturen, auf die die zurückgegebene DFS_INFO_ # -Struktur verweist, die sich ebenfalls im Ausgabepuffer befinden, sollte dieser Puffer größer als die angegebene DFS_INFO_ # Struktur sein.

lpbyteszurück gegeben [out]

Ein Zeiger auf eine Variable, die die Größe der im Ausgabepuffer gespeicherten Daten (in Bytes) empfängt.

Wenn der Ausgabepuffer zu klein ist, aber mindestens groß genug ist, um ein DWORD zu speichern, schlägt der-Befehl fehl, GetLastError gibt ERROR_MORE_DATA zurück, und das erste DWORD des Ausgabepuffers enthält die benötigte Größe. Wenn der Ausgabepuffer kein DWORD enthalten kann, schlägt der-Vorgang mit ERROR_INSUFFICIENT_BUFFER fehl, und lpbyteshat den Wert 0 (null) zurückgegeben.

Wenn lpoverllapp den Wert NULL hat, kann lpbytes-Rückgabe Wert nicht null sein. Selbst wenn ein Vorgang keine Ausgabedaten zurückgibt und lpoutbuffer den Wert null hat, verwendet DeviceIoControl lpbytesreturn. Nach einem solchen Vorgang ist der Wert von lpbytesno bedeutungslos.

Wenn lpoverllapp nicht null ist, kann lpbytesgab null sein. Wenn dieser Parameter nicht null ist und der Vorgang Daten zurückgibt, ist lpbytesreturns bedeutungslos, bis der überlappende Vorgang abgeschlossen ist. Um die Anzahl der zurückgegebenen Bytes abzurufen, rufen Sie gezu verlappedresultauf. Wenn der hdevice -Parameter einem e/a-Abschlussport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie GetQueuedCompletionStatusaufrufen.

lpoverlgetauscht [in]

Ein Zeiger auf eine über Lapp Ende Struktur.

Wenn hdevice geöffnet wurde, ohne FILE_FLAG_OVERLAPPED anzugeben, wird lpoverlgetauscht ignoriert.

Wenn hdevice mit dem FILE_FLAG_OVERLAPPED -Flag geöffnet wurde, wird der Vorgang als überlappende (asynchrone) Vorgang ausgeführt. In diesem Fall muss lpoverlgetauscht auf eine gültige über Lapp Ende Struktur verweisen, die ein Handle für ein Ereignis Objekt enthält. Andernfalls schlägt die Funktion auf unvorhersehbare Weise fehl.

Bei überlappenden Vorgängen gibt DeviceIoControl sofort zurück, und das Ereignis Objekt wird signalisiert, wenn der Vorgang abgeschlossen wurde. Andernfalls gibt die Funktion nicht zurück, bis der Vorgang abgeschlossen ist oder ein Fehler auftritt.

Rückgabewert

Wenn der Vorgang erfolgreich abgeschlossen wird, gibt DeviceIoControl einen Wert ungleich 0 (null) zurück.

Wenn der Vorgang fehlschlägt oder aussteht, gibt DeviceIoControl den Wert 0 (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)
Windows Server 2008
Header
Lmdfs. h (Include lmdfs. h)

Siehe auch

DeviceIoControl

Netdfsgetclientinfo