共用方式為


FSCTL_DFS_GET_PKT_ENTRY_STATE控制項程式碼

FSCTL_DFS_GET_PKT_ENTRY_STATE控制項程式碼可以取得與NetDfsGetClientInfo函式相同的資訊,但在某些設定中,DFS 伺服器會有高延遲,可提供更佳的效能。 除非發生效能問題,否則不建議使用 FSCTL_DFS_GET_PKT_ENTRY_STATE 控制項程式碼。

若要執行這項作業,請使用下列參數呼叫 DeviceIoControl 函 式。

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

參數

hDevice [in]

裝置的控制碼。 若要取得裝置控制碼,請呼叫 CreateFile 函式。

dwIoControlCode [in]

作業的控制程式代碼。 針對此作業使用 FSCTL_DFS_GET_PKT_ENTRY_STATE

lpInBuffer

DFS_GET_PKT_ENTRY_STATE_ARG結構和下列 1-3 個 Unicode 字串的位址。

nInBufferSize [in]

lpInBuffer參數所指向緩衝區的大小,以位元組為單位。

lpOutBuffer [out]

DFS_INFO_#結構的位址,以及DFS_INFO_#結構所指向的任何字串和結構。 傳回的特定結構取決於傳入輸入緩衝區之DFS_GET_PKT_ENTRY_STATE_ARG結構中的Level成員。

nOutBufferSize [in]

lpOutBuffer參數所指向緩衝區的大小,以位元組為單位。 由於傳回 的DFS_INFO_# 結構所參考的字串和結構也位於輸出緩衝區中,此緩衝區應該大於指定的 DFS_INFO_# 結構。

lpBytesReturned [out]

變數的指標,接收儲存在輸出緩衝區中的資料大小,以位元組為單位。

如果輸出緩衝區太小,但至少足以保存 DWORD,則呼叫會失敗, GetLastError 會傳回 ERROR_MORE_DATA,而輸出緩衝區的第一個 DWORD 包含所需的大小。 如果輸出緩衝區無法保存 DWORD ,則呼叫會因為 ERROR_INSUFFICIENT_BUFFER而失敗,而 lpBytesReturned 為零。

如果 lpOverlappedNull則 lpBytesReturned 不能是 Null。 即使作業未傳回任何輸出資料且 lpOutBufferNullDeviceIoControl 仍會使用 lpBytesReturned。 在這類作業之後, lpBytesReturned 的值是無意義的。

如果 lpOverlapped 不是 Null則 lpBytesReturned 可以是 Null。 如果此參數不是 Null ,而且作業會傳回資料, 則 lpBytesReturned 在重迭的作業完成之前是無意義的。 若要擷取傳回的位元組數目,請呼叫 GetOverlappedResult。 如果 hDevice 參數與 I/O 完成埠相關聯,您可以呼叫 GetQueuedCompletionStatus來擷取傳回的位元組數目。

lpOverlapped [in]

重迭結構的指標。

如果 開啟 hDevice 而不指定 FILE_FLAG_OVERLAPPED,則會忽略 lpOverlapped

如果 hDevice 是以 FILE_FLAG_OVERLAPPED 旗標開啟,則會以重迭的 (非同步) 作業來執行。 在此情況下, lpOverlapped 必須指向包含事件物件控制碼的有效 OVERLAPPED 結構。 否則,函式會以無法預期的方式失敗。

針對重迭的作業, DeviceIoControl 會立即傳回,而且當作業完成時會發出事件物件的訊號。 否則,函式不會在作業完成或發生錯誤之前傳回。

傳回值

如果作業順利完成, DeviceIoControl 會傳回非零值。

如果作業失敗或擱置中, DeviceIoControl 會 傳回零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

規格需求

需求
最低支援的用戶端
Windows Vista
最低支援的伺服器
Windows Server 2008
標頭
LmDfs.h (包含 LmDfs.h)

另請參閱

DeviceIoControl

NetDfsGetClientInfo