Rutina MRxCreate
RDBSS llama a la rutinaMRxCreate para solicitar que el minidirector de red cree un objeto de sistema de archivos.
Sintaxis
PMRX_CALLDOWN MRxCreate;
NTSTATUS MRxCreate(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Parámetros
RxContext [in, out]
Puntero a la estructura RX_CONTEXT. Este parámetro contiene el IRP que solicita la operación.
Valor devuelto
MRxCreate devuelve STATUS_SUCCESS si se ejecuta correctamente o un valor NTSTATUS adecuado, como uno de los siguientes:
Código devuelto | Descripción |
---|---|
STATUS_INSUFFICIENT_RESOURCES | No había recursos suficientes para completar la operación. |
STATUS_NETWORK_ACCESS_DENIED | Se denegó el acceso a la red. Este error se puede devolver si se ha pedido al minidirector de red que abra un nuevo archivo en un recurso compartido de solo lectura. |
STATUS_NOT_IMPLEMENTED | No se implementa una característica solicitada, como el arranque remoto o un archivo de página remoto. |
STATUS_NOT_SUPPORTED | No se admite una característica solicitada, como atributos extendidos. |
STATUS_OBJECT_NAME_COLLISION | Se pidió al minidirector de red que creara un archivo que ya existe. |
STATUS_OBJECT_NAME_NOT_FOUND | No se encontró el nombre del objeto. Este error se puede devolver si se ha pedido al minidirector de red que abra un archivo que no existe. |
STATUS_OBJECT_PATH_NOT_FOUND | No se encontró la ruta de acceso del objeto. Este error se puede devolver si se solicitó un objeto de secuencia NTFS y el sistema de archivos remoto no admite secuencias. |
STATUS_REPARSE | Se requiere un análisis para controlar un vínculo simbólico. |
STATUS_RETRY | Se debe reintentar la operación. Este error se puede devolver si el minidirector de red encontró una infracción de uso compartido o un error de acceso denegado. |
Comentarios
RDBSS llama a MRxCreate para solicitar que el minidirector de red abra un objeto de sistema de archivos a través de la red. RdBSS emite esta llamada en respuesta a la recepción de una solicitud de IRP_MJ_CREATE .
Antes de llamar a MRxCreate, RDBSS modifica los siguientes miembros de la estructura RX_CONTEXT a la que apunta el parámetro RxContext :
pRelevantSrvOpen se establece en la estructura SRV_OPEN.
Create.pSrvCall se establece en la estructura SRV_CALL.
Create.NtCreateParameters se establece en el NT_CREATE_PARAMETERS solicitado.
En el contexto de un minidirector de red, un objeto de archivo hace referencia al bloque de control de archivos (FCB) asociado y a las estructuras de extensión de objeto de archivo (FOBX). Hay una correspondencia de uno a uno entre objetos de archivo y FOBXs. Muchos objetos de archivo harán referencia al mismo FCB, que representa un único archivo en un servidor remoto. Un cliente puede tener varias solicitudes abiertas diferentes (solicitudes NtCreateFile) en el mismo FCB y cada una de ellas creará un nuevo objeto de archivo. RdBSS y miniireccionadores de red pueden optar por enviar menos solicitudes MRxCreate que las solicitudes NtCreateFile recibidas, en efecto compartiendo una estructura de SRV_OPEN entre varios FOBX.
Si la solicitud MRxCreate era para una sobrescritura de archivos y MRxCreate devolvió STATUS_SUCCESS, RDBSS adquirirá el recurso de E/S de paginación y truncará el archivo. Si el administrador de caché almacena en caché el archivo, RDBSS actualizará los tamaños que el administrador de caché tiene con los que acaba de recibir del servidor.
Antes de devolverlo, MRxCreate debe establecer el miembro CurrentIrp-IoStatus.Information> de la estructura de RX_CONTEXT a la que apunta el parámetro RxContext.
Requisitos
Plataforma de destino |
Escritorio |
Encabezado |
Mrx.h (incluya Mrx.h) |