Función DxgkInitialize (dispmprt.h)
La función DxgkInitialize carga e inicializa el subsistema del kernel de gráficos de DirectX (Dxgkrnl.sys).
Sintaxis
NTSTATUS DxgkInitialize(
[in] PDRIVER_OBJECT DriverObject,
[in] PUNICODE_STRING RegistryPath,
[in] PDRIVER_INITIALIZATION_DATA DriverInitializationData
);
Parámetros
[in] DriverObject
Puntero a una estructura de DRIVER_OBJECT . El controlador de miniporte de pantalla obtuvo anteriormente este puntero en su función DriverEntry .
[in] RegistryPath
Puntero a una estructura de UNICODE_STRING que proporciona la ruta de acceso a la clave del Registro del servicio del controlador. El controlador de minipuerto de pantalla obtuvo previamente este puntero en su función DRIVER_OBJECT .
[in] DriverInitializationData
Puntero a una estructura de DRIVER_INITIALIZATION_DATA que proporciona el subsistema del kernel de gráficos de DirectX con punteros a funciones implementadas por el controlador de minipuerto de pantalla.
Valor devuelto
DxgkInitializedevuelve STATUS_SUCCESS si se realiza correctamente; de lo contrario, devuelve uno de los códigos de error definidos en Ntstatus.h.
Comentarios
La función DriverEntry del controlador driver de pantalla llama a DxgkInitialize.
Ejemplos
En el ejemplo de código siguiente se muestra una implementación de DriverEntry en la que se llama a DxgkInitialize .
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
{
DRIVER_INITIALIZATION_DATA DriverInitializationData = {'\0'};
PAGED_CODE();
if (! ARGUMENT_PRESENT(DriverObject) ||
! ARGUMENT_PRESENT(RegistryPath))
{
return STATUS_INVALID_PARAMETER;
}
// Fill in the DriverInitializationData structure and call DxgkInitialize()
DriverInitializationData.Version = DXGKDDI_INTERFACE_VERSION;
DriverInitializationData.DxgkDdiAddDevice = AtiAddDevice;
DriverInitializationData.DxgkDdiStartDevice = AtiStartDevice;
DriverInitializationData.DxgkDdiStopDevice = AtiStopDevice;
DriverInitializationData.DxgkDdiRemoveDevice = AtiRemoveDevice;
DriverInitializationData.DxgkDdiDispatchIoRequest = AtiDispatchIoRequest;
DriverInitializationData.DxgkDdiInterruptRoutine = AtiInterruptRoutine;
DriverInitializationData.DxgkDdiDpcRoutine = AtiDpcRoutine;
DriverInitializationData.DxgkDdiQueryChildRelations = AtiQueryChildRelations;
DriverInitializationData.DxgkDdiQueryChildStatus = AtiQueryChildStatus;
DriverInitializationData.DxgkDdiQueryDeviceDescriptor = AtiQueryDeviceDescriptor;
DriverInitializationData.DxgkDdiSetPowerState = AtiSetPowerState;
DriverInitializationData.DxgkDdiNotifyAcpiEvent = AtiNotifyAcpiEvent;
DriverInitializationData.DxgkDdiResetDevice = AtiResetDevice;
DriverInitializationData.DxgkDdiUnload = AtiUnload;
DriverInitializationData.DxgkDdiQueryInterface = AtiQueryInterface;
DriverInitializationData.DxgkDdiControlEtwLogging = D3DDDIControlEtwLogging;
DriverInitializationData.DxgkDdiQueryAdapterInfo = D3DDDIQueryAdapterInfo;
DriverInitializationData.DxgkDdiCreateDevice = D3DDDICreateDevice;
DriverInitializationData.DxgkDdiCreateAllocation = D3DDDICreateAllocation;
DriverInitializationData.DxgkDdiDestroyAllocation = D3DDDIDestroyAllocation;
DriverInitializationData.DxgkDdiCreateOverlay = D3DDDICreateOverlay;
DriverInitializationData.DxgkDdiUpdateOverlay = D3DDDIUpdateOverlay;
DriverInitializationData.DxgkDdiFlipOverlay = D3DDDIFlipOverlay;
DriverInitializationData.DxgkDdiDestroyOverlay = D3DDDIDestroyOverlay;
DriverInitializationData.DxgkDdiDescribeAllocation = D3DDDIDescribeAllocation;
DriverInitializationData.DxgkDdiGetStandardAllocationDriverData = D3DDDIGetStandardAllocationDriverData;
DriverInitializationData.DxgkDdiAcquireSwizzlingRange = D3DDDIAcquireSwizzlingRange;
DriverInitializationData.DxgkDdiReleaseSwizzlingRange = D3DDDIReleaseSwizzlingRange;
DriverInitializationData.DxgkDdiOpenAllocation = D3DDDIOpenAllocation;
DriverInitializationData.DxgkDdiCloseAllocation = D3DDDICloseAllocation;
DriverInitializationData.DxgkDdiPatch = D3DDDIPatchDmaBuffer;
DriverInitializationData.DxgkDdiSubmitCommand = D3DDDISubmitCommand;
DriverInitializationData.DxgkDdiBuildPagingBuffer = D3DDDIBuildPagingBuffer;
DriverInitializationData.DxgkDdiSetPalette = D3DDDISetPalette;
DriverInitializationData.DxgkDdiSetPointerShape = D3DDDISetPointerShape;
DriverInitializationData.DxgkDdiSetPointerPosition = D3DDDISetPointerPosition;
DriverInitializationData.DxgkDdiPreemptCommand = D3DDDIPreemptCommand;
DriverInitializationData.DxgkDdiDestroyDevice = D3DDDIDestroyDevice;
DriverInitializationData.DxgkDdiRender = D3DDDIRender;
DriverInitializationData.DxgkDdiRenderKm = D3DDDIRenderKm; DriverInitializationData.DxgkDdiPresent = D3DDDIPresent;
DriverInitializationData.DxgkDdiResetFromTimeout = D3DDDIResetFromTimeout;
DriverInitializationData.DxgkDdiRestartFromTimeout = D3DDDIRestartFromTimeout;
DriverInitializationData.DxgkDdiEscape = D3DDDIEscape;
DriverInitializationData.DxgkDdiCollectDbgInfo = D3DDDICollectDbgInfo;
DriverInitializationData.DxgkDdiQueryCurrentFence = D3DDDIQueryCurrentFence;
DriverInitializationData.DxgkDdiControlInterrupt = D3DDDIControlInterrupt;
DriverInitializationData.DxgkDdiGetScanLine = D3DDDIGetScanLine;
DriverInitializationData.DxgkDdiStopCapture = D3DDDI DxgkDdiStopCapture; DriverInitializationData.DxgkDdiSetVidPnSourceAddress = D3DDDISetVidPnSourceAddress;
DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = D3DDDISetVidPnSourceVisibility;
DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = D3DDDIUpdateActiveVidPnPresentPath;
DriverInitializationData.DxgkDdiCommitVidPn = D3DDDICommitVidPn;
DriverInitializationData.DxgkDdiRecommendMonitorModes = D3DDDIRecommendMonitorModes;
DriverInitializationData.DxgkDdiRecommendVidPnTopology = D3DDDIRecommendVidPnTopology;
DriverInitializationData.DxgkDdiCreateContext = D3DDDICreateContext;
DriverInitializationData.DxgkDdiDestroyContext = D3DDDIDestroyContext;
DriverInitializationData.DxgkDdiLinkDevice = D3DDDILinkDevice;
DriverInitializationData.DxgkDdiSetDisplayPrivateDriverFormat = D3DDDISetDisplayPrivateDriverFormat;
DriverInitializationData.DxgkDdiRecommendFunctionalVidPn = D3DDDIRecommendFunctionalVidPn_XddmParity;
DriverInitializationData.DxgkDdiEnumVidPnCofuncModality = D3DDDIEnumVidPnCofuncModality_XddmParity;
DriverInitializationData.DxgkDdiIsSupportedVidPn = D3DDDIIsSupportedVidPn_XddmParity;
DriverInitializationData.DxgkDdiQueryVidPnHWCapability = D3DDDI DxgkDdiQueryVidPnHWCapability;
return DxgkInitialize(DriverObject,
RegistryPath,
&DriverInitializationData);
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Plataforma de destino | Escritorio |
Encabezado | dispmprt.h (include Dispmprt.h) |
IRQL | PASSIVE_LEVEL |