DxgkInitialize-Funktion (dispmprt.h)
Die DxgkInitialize-Funktion lädt und initialisiert das DirectX-Grafikkernsubsystem (Dxgkrnl.sys).
Syntax
NTSTATUS DxgkInitialize(
[in] PDRIVER_OBJECT DriverObject,
[in] PUNICODE_STRING RegistryPath,
[in] PDRIVER_INITIALIZATION_DATA DriverInitializationData
);
Parameter
[in] DriverObject
Ein Zeiger auf eine DRIVER_OBJECT-Struktur . Der Anzeige-Miniporttreiber hat diesen Zeiger zuvor in seiner DriverEntry-Funktion abgerufen.
[in] RegistryPath
Ein Zeiger auf eine UNICODE_STRING-Struktur , die den Pfad zum Dienstregistrierungsschlüssel des Treibers bereitstellt. Der Anzeige-Miniporttreiber hat diesen Zeiger zuvor in seiner DRIVER_OBJECT-Funktion abgerufen.
[in] DriverInitializationData
Ein Zeiger auf eine DRIVER_INITIALIZATION_DATA-Struktur , die das DirectX-Grafikkernsubsystem mit Zeigern auf Funktionen bereitstellt, die vom Display-Miniporttreiber implementiert werden.
Rückgabewert
DxgkInitializegibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.
Hinweise
Die DriverEntry-Funktion des Anzeigeminiporttreibers ruft DxgkInitialize auf.
Beispiele
Das folgende Codebeispiel zeigt eine Implementierung von DriverEntry , in der DxgkInitialize aufgerufen wird.
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);
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Zielplattform | Desktop |
Kopfzeile | dispmprt.h (include Dispmprt.h) |
IRQL | PASSIVE_LEVEL |