Función ObGetObjectSecurity (wdm.h)
La rutina ObGetObjectSecurity obtiene el descriptor de seguridad de un objeto determinado.
Sintaxis
NTSTATUS ObGetObjectSecurity(
[in] PVOID Object,
[out] PSECURITY_DESCRIPTOR *SecurityDescriptor,
[out] PBOOLEAN MemoryAllocated
);
Parámetros
[in] Object
Puntero al objeto .
[out] SecurityDescriptor
Puntero a una variable proporcionada por el autor de la llamada que esta rutina establece en la dirección de un búfer que contiene el SECURITY_DESCRIPTOR para el objeto especificado. Si el objeto especificado no tiene ningún descriptor de seguridad, esta variable se establece en NULL al devolver desde ObGetObjectSecurity.
[out] MemoryAllocated
Puntero a una variable proporcionada por el autor de la llamada que esta rutina establece en TRUE si asignó un búfer para que contenga el descriptor de seguridad.
Valor devuelto
ObGetObjectSecurity devuelve STATUS_SUCCESS o un estado de error, como STATUS_INSUFFICIENT_RESOURCES si no pudo asignar suficiente memoria para devolver la información solicitada.
Comentarios
Una llamada correcta a ObGetObjectSecurity devuelve un descriptor de seguridad autoconsciente en el búfer en *SecurityDescriptor o devuelve NULL en *SecurityDescriptor si el objeto especificado no tiene ningún descriptor de seguridad. Por ejemplo, cualquier objeto sin nombre, como un objeto de evento, no tiene ningún descriptor de seguridad.
Si ObGetObjectSecurity devuelve STATUS_SUCCESS, el autor de la llamada debe guardar el valor devuelto en MemoryAllocated. Dicho llamador debe pasar MemoryAllocated en una llamada recíproca a ObReleaseObjectSecurity finalmente, restaurando así el recuento de referencias en el descriptor de seguridad a su valor original y liberando el búfer, si existe, asignado por ObGetObjectSecurity.
Solo se debe llamar a ObGetObjectSecurity en el nivel IRQL = PASSIVE_LEVEL con las API habilitadas; de lo contrario, pueden producirse interbloqueos o bloqueos.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible a partir de Windows 2000. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), IrqlApcLte(wdm) |