Compartir a través de


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)

Consulte también

MRxAreFilesAliased

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend