IoAllocateDriverObjectExtension 함수(wdm.h)
IoAllocateDriverObjectExtension 루틴은 드라이버 개체 확장이라고 하는 드라이버별 컨텍스트 영역을 할당하고 고유 식별자를 할당합니다.
구문
NTSTATUS IoAllocateDriverObjectExtension(
[in] PDRIVER_OBJECT DriverObject,
[in] PVOID ClientIdentificationAddress,
[in] ULONG DriverObjectExtensionSize,
[out] PVOID *DriverObjectExtension
);
매개 변수
[in] DriverObject
컨텍스트 영역이 연결될 드라이버 개체에 대한 포인터입니다.
[in] ClientIdentificationAddress
할당할 컨텍스트 영역에 대한 고유 식별자를 지정합니다.
[in] DriverObjectExtensionSize
할당할 컨텍스트 영역의 길이(바이트)를 지정합니다.
[out] DriverObjectExtension
완료 시 할당된 컨텍스트 영역에 대한 포인터입니다.
반환 값
IoAllocateDriverObjectExtension 은 다음 NTSTATUS 코드 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
루틴이 요청된 크기의 확장을 할당했음을 나타냅니다. |
|
드라이버 개체 확장에 메모리를 할당할 수 없음을 나타냅니다. |
|
지정된 ClientIdentificationAddress 가 있는 드라이버 개체 확장이 이미 있음을 나타냅니다. |
설명
드라이버 개체 확장에 대해 시스템에서 할당한 메모리는 상주 스토리지이며 모든 IRQL에서 액세스할 수 있습니다. 할당된 스토리지는 드라이버 개체가 삭제되면 I/O 관리자가 자동으로 해제합니다.
이 루틴의 호출자는 ClientIdentificationAddress에 대한 고유 식별자를 제공해야 합니다. 컨텍스트 영역에 대한 포인터를 검색하기 위해 호출자는 ClientIdentificationAddress 를 IoGetDriverObjectExtension에 전달합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |