MRxQueryDirectory routine
The MRxQueryDirectory routine is called by RDBSS to request that a network mini-redirector query information on a file directory.
PMRX_CALLDOWN MRxQueryDirectory;
NTSTATUS MRxQueryDirectory(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
RxContext [in, out]
A pointer to the RX_CONTEXT structure. This parameter contains the IRP that is requesting the operation.
MRxQueryDirectory returns STATUS_SUCCESS on success or an appropriate NTSTATUS value, such as one of the following:
Return code | Description |
---|---|
STATUS_ACCESS_DENIED | The caller lacked the proper security for this operation. |
STATUS_INSUFFICIENT_RESOURCES | There were insufficient resources to complete the query. |
STATUS_INVALID_NETWORK_RESPONSE | An invalid file information buffer was received from the remote server or a filename length that was returned exceeded the maximum allowed length. |
STATUS_INVALID_PARAMETER | An invalid FileInformationClass was specified in the Info.FileInformationClass member in the RX_CONTEXT structure pointed to by the RxContext parameter. |
STATUS_LINK_FAILED | The attempt to reconnect to a remote server to complete the query failed. |
STATUS_NO_SUCH_FILE | The query failed to find any entries. |
STATUS_SHARING_VIOLATION | A sharing violation occurred. |
Before calling MRxQueryDirectory, RDBSS modifies the following members in the RX_CONTEXT structure pointed to by the RxContext parameter:
The Info.FileInformationClass member is set to IrpSp->Parameters.QueryDirectory.FileInformationClass.
The Info.Buffer member is set to user buffer from I/O request packet. This buffer has already been locked by RDBSS if needed.
The Info.LengthRemaining member is set to IrpSp->Parameters.QueryDirectory.Length.
The QueryDirectory.FileIndex member is set to IrpSp->Parameters.QueryDirectory.FileIndex.
The QueryDirectory.RestartScan member is set to nonzero if IrpSp->Flags has the SL_RESTART_SCAN bit on.
The QueryDirectory.ReturnSingleEntry member is set to nonzero if IrpSp->Flags has the SL_RETURN_SINGLE_ENTRY bit on.
The QueryDirectory.IndexSpecified member is set to nonzero if IrpSp->Flags has the SL_INDEX_SPECIFIED bit on.
The QueryDirectory.InitialQuery member is set to nonzero if UnicodeQueryTemplate.Buffer member of the associated FOBX is NULL and the Flags member of the FOBX does not have the FOBX_FLAG_MATCH_ALL bit on.
For a wild card query ("*.*", for example), RDBSS will set the UnicodeQueryTemplate.Buffer member of the associated FOBX to the wild card query passed.
If the PostRequest member of the RX_CONTEXT structure is TRUE on return from MRxQueryDirectory, then RDBSS will call RxFsdPostRequest passing the RX_CONTEXT structure to a worker queue for processing by the file system process (FSP).
Target platform |
Desktop |
Header |
Mrx.h (include Mrx.h) |