Función NdisInitializeReadWriteLock (ndis.h)
La función NdisInitializeReadWriteLock inicializa una variable de bloqueo de lectura o escritura de tipo NDIS_RW_LOCK.
Sintaxis
void NdisInitializeReadWriteLock(
[out] PNDIS_RW_LOCK Lock
);
Parámetros
[out] Lock
Puntero a una variable NDIS_RW_LOCK opaca que representa un bloqueo. El autor de la llamada puede usar este bloqueo para obtener acceso de escritura o lectura a los recursos que se comparten entre subprocesos de controladores que no son ISR.
Valor devuelto
None
Observaciones
Se usa una variable NDIS_RW_LOCK para limitar el acceso de escritura a los recursos compartidos a un subproceso de controlador que no sea ISR a la vez. Este NDIS_RW_LOCK puede permitir que varios subprocesos de controladores que no son ISR accedan simultáneamente a esos recursos. Este acceso de lectura no se permite durante un acceso de escritura.
El puntero lock que se pasa a NdisInitializeReadWriteLock es un parámetro necesario para el resto de Ndis.. Funciones ReadWriteLock .
Antes de que un controlador llame a la función NdisAcquireReadWriteLock para obtener acceso de escritura o lectura a un recurso, el controlador debe llamar a NdisInitializeReadWriteLock para inicializar el bloqueo asociado a ese recurso. El autor de la llamada debe proporcionar almacenamiento no paginado para la variable en Bloquear .
Después de llamar a NdisInitializeReadWriteLock, el controlador puede llamar a NdisAcquireReadWriteLock para obtener acceso de escritura o lectura al recurso. Solo un subproceso de controlador que no sea ISR a la vez puede obtener acceso de escritura al recurso. Cuando un subproceso que no es ISR tiene acceso de escritura, todos los accesos de lectura y escritura por otros subprocesos que no son ISR deben esperar hasta que el titular del acceso de escritura libere el bloqueo. Sin embargo, si un subproceso que no es ISR tiene acceso de lectura, otros subprocesos que no son ISR pueden adquirir acceso de lectura simultáneamente.
Inicialice y use este tipo de bloqueo para los recursos a los que se accede con frecuencia para leer y a los que se accede con poca frecuencia para escribir.
Una vez completado el acceso a los recursos, el controlador llama a . Función NdisReleaseReadWriteLock .
Cada bloqueo que inicializa un controlador realiza una de las siguientes acciones:
- Protege un conjunto discreto de recursos compartidos de acceso de escritura y lectura simultáneos por subprocesos de controlador que se ejecutan en IRQL <= DISPATCH_LEVEL.
- Expone un conjunto discreto de recursos compartidos a acceso de lectura simultáneo por subprocesos de controlador que se ejecutan en IRQL <= DISPATCH_LEVEL.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | En desuso para los controladores NDIS 6.20 y versiones posteriores, que deben usar NdisAllocateRWLock en lugar de NdisInitializeReadWriteLock. Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulta NdisInitializeReadWriteLock (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulta NdisInitializeReadWriteLock (NDIS 5.1)) en Windows XP. |
Plataforma de destino | Universal |
Encabezado | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
Archivo DLL | Ndis.sys |
IRQL | Cualquier nivel (consulte la sección Comentarios) |