codice di controllo FSCTL_DFS_GET_PKT_ENTRY_STATE

Il codice di controllo FSCTL_DFS_GET_PKT_ENTRY_STATE può ottenere le stesse informazioni della funzione NetDfsGetClientInfo , ma può offrire prestazioni migliori in alcune configurazioni con latenze elevate per i server DFS. Non è consigliabile usare il codice di controllo FSCTL_DFS_GET_PKT_ENTRY_STATE a meno che non siano presenti problemi di prestazioni.

Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.

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

Parametri

hDevice [in]

Handle per il dispositivo. Per ottenere un handle di dispositivo, chiamare la funzione CreateFile .

dwIoControlCode [in]

Codice di controllo per l'operazione. Usare FSCTL_DFS_GET_PKT_ENTRY_STATE per questa operazione.

lpInBuffer

Indirizzo di una struttura DFS_GET_PKT_ENTRY_STATE_ARG e delle stringhe Unicode 1-3 seguenti.

nInBufferSize [in]

Dimensioni, in byte, del buffer a cui punta il parametro lpInBuffer .

lpOutBuffer [out]

Indirizzo di una struttura DFS_INFO_# e di tutte le stringhe e le strutture a cui punta la struttura DFS_INFO_# . La struttura specifica restituita dipende dal membro Level nella struttura DFS_GET_PKT_ENTRY_STATE_ARG passata nel buffer di input.

nOutBufferSize [in]

Dimensioni, in byte, del buffer a cui punta il parametro lpOutBuffer . A causa delle stringhe e delle strutture a cui fa riferimento la struttura DFS_INFO_# restituita che si trovano anche nel buffer di output, questo buffer deve essere maggiore della struttura DFS_INFO_# specificata.

lpBytesReturned [out]

Puntatore a una variabile che riceve le dimensioni dei dati archiviati nel buffer di output, in byte.

Se il buffer di output è troppo piccolo, ma almeno di dimensioni sufficienti per contenere un DWORD, la chiamata ha esito negativo, GetLastError restituisce ERROR_MORE_DATA e la prima DWORD del buffer di output contiene le dimensioni necessarie. Se il buffer di output non può contenere un DWORD , la chiamata ha esito negativo con ERROR_INSUFFICIENT_BUFFER e lpBytesReturned è zero.

Se lpOverlapped è NULL, lpBytesReturned non può essere NULL. Anche quando un'operazione non restituisce dati di output e lpOutBuffer è NULL, DeviceIoControl usa lpBytesReturned. Dopo un'operazione di questo tipo, il valore di lpBytesReturned è privo di significato.

Se lpOverlapped non è NULL, lpBytesReturned può essere NULL. Se questo parametro non è NULL e l'operazione restituisce dati, lpBytesReturned non ha significato fino al completamento dell'operazione sovrapposta. Per recuperare il numero di byte restituiti, chiamare GetOverlappedResult. Se il parametro hDevice è associato a una porta di completamento I/O, è possibile recuperare il numero di byte restituiti chiamando GetQueuedCompletionStatus.

lpOverlapped [in]

Puntatore a una struttura OVERLAPPED .

Se hDevice è stato aperto senza specificare FILE_FLAG_OVERLAPPED, lpOverlapped viene ignorato.

Se hDevice è stato aperto con il flag FILE_FLAG_OVERLAPPED , l'operazione viene eseguita come operazione sovrapposta (asincrona). In questo caso , lpOverlapped deve puntare a una struttura OVERLAPPED valida che contiene un handle a un oggetto evento. In caso contrario, la funzione ha esito negativo in modi imprevedibili.

Per le operazioni sovrapposte, DeviceIoControl restituisce immediatamente e l'oggetto evento viene segnalato al termine dell'operazione. In caso contrario, la funzione non restituisce finché l'operazione non è stata completata o si verifica un errore.

Valore restituito

Se l'operazione viene completata correttamente, DeviceIoControl restituisce un valore diverso da zero.

Se l'operazione ha esito negativo o è in sospeso, DeviceIoControl restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Intestazione
LmDfs.h (include LmDfs.h)

Vedi anche

Deviceiocontrol

NetDfsGetClientInfo